#问题发生于我需要将一个文件夹下的所有文件加上相同的前缀，并进行改名
from pathlib import Path
import argparse
import shutil
import json

#定义可由命令行输入的参数
def parseAugments():
    parser = argparse.ArgumentParser(description="对文件夹及文件处理")
    #源路径
    parser.add_argument("--origin_file_path", type=str, default=r"D:\tempDownload\dataset\elevator\mydata_img")
    #目标路径
    parser.add_argument("--target_file_path", type=str, default="D:/tempDownload/dataset/elevator/test/")
    return parser.parse_args()


#判断源路径和目标路径是否存在
def judgeOriginTarget(origin_file_path, target_file_path):
    if not origin_file_path.exists():
        print("you file is not exist")
        exit()

    if not target_file_path.exists():
        print(f"目标目录不存在，在{target_file_path}创建目录")
        target_file_path.mkdir(parents=True, exist_ok=True)

#对目录下的文件进行遍历，并进行操作
def changeFileName(origin_file_path, target_file_path):
    # #将源路径下的文件复制到目标路径，并进行改名
    # for i,item in enumerate(origin_file_path.glob('*.jpg')):
    #     target_file_name = item.parent.name + "_" + str(i) + Path(item.name).suffix
    #     move_to = target_file_path / Path(target_file_name)
    #     shutil.copy(str(item), str(move_to))


    #将源路径下的文件原地改名
    for i,item in enumerate(origin_file_path.glob('*.jpg')):
        target_file_name = "999_" + str(i) + Path(item.name).suffix #输出文件名之后输出后缀
        item.rename(str(target_file_path / Path(target_file_name)))

#读取目标路径下的文件，并存储为json文件
#该案例读取的是txt文件，文件内容由逗号分隔开
def readFileToJson(origin_file_path, target_file_path):
    json_content = {}
    for i, item in enumerate(origin_file_path.glob("*.txt")):
        file_content = [_.strip() for _ in item.read_text().split(',')]
        json_content[f'{item.name}'] = file_content

    json_data = json.dumps(json_content)
    target_file_path = target_file_path / 'output.json'
    target_file_path.write_text(json_data)
    print(f"json数据写入{target_file_path}完毕")

#分析Json
def analysisJson():
    pass

#将json中的内容解析回txt文件
def jsonTofile(origin_file_path, target_file_path):
    analysisJson()
    with open(origin_file_path, 'r') as f:
        json_data = json.load(f)

    for key, value in json_data.items():
        final_path = target_file_path / key
        final_path.touch()
        final_path.write_text(', '.join(value))

if __name__ == "__main__":
    args = parseAugments()
    origin_file_path = Path(args.origin_file_path)
    target_file_path = Path(args.target_file_path)

    judgeOriginTarget(origin_file_path, target_file_path)

    changeFileName(origin_file_path, target_file_path)
